package org.wm.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.wm.entity.SysPost;

import java.util.List;

/**
 * 岗位信息 数据层
 * (已按照 Mybatis-Plus 混合模式进行改造)
 */
@Mapper
public interface SysPostMapper extends BaseMapper<SysPost> {

    /**
     * 根据条件分页查询岗位列表
     */
    IPage<SysPost> selectPostList(Page<SysPost> page, @Param("post") SysPost post);

    /**
     * 查询所有岗位
     */
    List<SysPost> selectPostAll();

    /**
     * 根据用户ID查询岗位选择框列表
     */
    List<Long> selectPostListByUserId(@Param("userId") Long userId);

    /**
     * 根据用户名称查询岗位
     */
    List<SysPost> selectPostsByUserName(@Param("userName") String userName);

    /*
        ================================================================================================
        ==== 以下方法已被删除，因为它们的功能已由 Mybatis-Plus 的 BaseMapper 或 Wrapper 提供： ====
        ================================================================================================
        - selectPostById       -> 由 baseMapper.selectById(id) 或 service.getById(id) 实现
        - insertPost           -> 由 baseMapper.insert(post) 或 service.save(post) 实现
        - updatePost           -> 由 baseMapper.updateById(post) 或 service.updateById(post) 实现
        - deletePostById       -> 由 baseMapper.deleteById(id) 实现
        - deletePostByIds      -> 由 baseMapper.deleteBatchIds(ids) 实现
        - checkPostNameUnique  -> 由 Wrapper 实现: wrapper.eq(SysPost::getPostName, postName)
        - checkPostCodeUnique  -> 由 Wrapper 实现: wrapper.eq(SysPost::getPostCode, postCode)
    */
}